package com.course;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.context.annotation.Bean;
import org.springframework.core.env.ConfigurableEnvironment;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.reactive.CorsWebFilter;
import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource;
import org.springframework.web.util.pattern.PathPatternParser;
/**
 * eureka 应用程序
 *
 * @author Feel
 * @date 2021/09/28
 */
@EnableEurekaClient
@SpringBootApplication
public class GateWayApplication {


    public static void main(String[] args) {
        SpringApplication app = new SpringApplication(GateWayApplication.class);
        ConfigurableEnvironment environment = app.run(args).getEnvironment();
        System.out.println("---------------------------启动成功-------------------------------");
        System.out.println("  启动成功！GateWay  地址 http://localhost:" + environment.getProperty("server.port"));
        System.out.println("---------------------------启动成功-------------------------------");

    }



    /**
     * 配置跨域
     * @return
     */
    @Bean
    public CorsWebFilter corsFilter() {
        CorsConfiguration config = new CorsConfiguration();

        config.setAllowCredentials(Boolean.TRUE);
        config.addAllowedMethod("*");
        config.addAllowedOrigin("*");
        config.addAllowedHeader("*");
        config.setMaxAge(3600L);

        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(new PathPatternParser());
        source.registerCorsConfiguration("/**", config);

        return new CorsWebFilter(source);
    }


}
